package cn.iocoder.yudao.module.ao.controller.admin.classlocation.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import com.alibaba.excel.annotation.*;

@Schema(description = "管理后台 - 上课场地信息 Response VO")
@Data
@ExcelIgnoreUnannotated
public class ClassLocationRespVO {

    @Schema(description = "场地唯一ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "8952")
    @ExcelProperty("场地唯一ID")
    private Long locationId;

    @Schema(description = "场地名称，如笃志楼机房9", requiredMode = Schema.RequiredMode.REQUIRED, example = "笃志楼机房9")
    @ExcelProperty("场地名称")
    private String locationName;

    @Schema(description = "所属建筑物ID", example = "1")
    @ExcelProperty("所属建筑物ID")
    private Long buildingId;

    @Schema(description = "楼层", example = "3")
    @ExcelProperty("楼层")
    private Integer floor;

    @Schema(description = "房间号", example = "301")
    @ExcelProperty("房间号")
    private String roomNumber;

    @Schema(description = "场地类型，如机房、实训室", example = "机房")
    @ExcelProperty("场地类型")
    private String locationType;

    @Schema(description = "上课场地详细信息", example = "位于笃志楼3楼，配备投影仪")
    @ExcelProperty("上课场地详细信息")
    private String locationDetailInfo;

    @Schema(description = "教室人数", example = "50")
    @ExcelProperty("教室人数")
    private Integer classroomCapacity;

    @Schema(description = "设备清单", example = "投影仪、电脑、音响设备")
    @ExcelProperty("设备清单")
    private String equipmentList;

    @Schema(description = "管理员ID", example = "1")
    @ExcelProperty("管理员ID")
    private Long managerId;

    @Schema(description = "预约规则", example = "需提前1天预约，使用时间不超过4小时")
    @ExcelProperty("预约规则")
    private String bookingRules;

    @Schema(description = "状态（0=禁用 1=启用 2=维修中 3=预约中）", example = "1")
    @ExcelProperty("状态")
    private Integer status;

    @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("创建时间")
    private LocalDateTime createTime;

}